package com.donleo.elastic.vo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.data.elasticsearch.annotations.Field;
import org.springframework.data.elasticsearch.annotations.FieldType;

import java.io.Serializable;

/**
 * @author liangd
 * date 2020-12-18 09:38
 * code
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@EqualsAndHashCode(callSuper = false)
@Document(indexName = "role",shards = 2,replicas = 1)
public class EsRole implements Serializable {
    /**
     * Shard=1:存储到第一个切片
     * replicas =0: 不备份
     * FieldType.Keyword：存储数据时候，不会分词建立索引
     * FieldType.Text：存储数据时候，会自动分词，并生成索引
     *
     *ik_max_word与ik_smart区别？
     * ik_max_word
     * 会将文本做最细粒度的拆分，比如会将“中华人民共和国人民大会堂”拆分为“中华人民共和国、中华人民、中华、华人、
     * 人民共和国、人民、共和国、大会堂、大会、会堂等词语。
     * ik_smart
     * 会做最粗粒度的拆分，比如会将“中华人民共和国人民大会堂”拆分为中华人民共和国、人民大会堂。
     *
     */
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 角色名
     */
    @Field(analyzer = "ik_max_word",type = FieldType.Text)
    private String roleName;

    /**
     * 角色编号
     */
    @Field(type = FieldType.Keyword)
    private String roleCode;

    /**
     * 角色介绍
     */
    private String introduce;

}
